5afb4f1a75564c5857d78ccca4670e1cc437ee7b,src/main/java/meka/core/Metrics.java,Metrics,P_RecallMacro,#number#number#,542

Before Change


	int L = Y[0].length;
	double m = 0.0;
	for (int j = 0; j < L; j++) {
	    m += (P_Recall(M.getCol(Y,j),M.getCol(Ypred,j)) * 1./L);
	}

	return m;

After Change


	double m = 0.0;
	for (int j = 0; j < L; j++) {
            int[] y_j = M.getCol(Y, j);
            int[] p_j = M.getCol(Ypred, j);

            if (allMissing(y_j)) {
                continue;
            }

            int[][] aligned = align(y_j, p_j);

            int[] y_jAligned = aligned[0];
            int[] p_jAligned = aligned[1];

            double curRecall = recall(y_jAligned, p_jAligned) * 1. / y_jAligned.length;

            if (Double.isNaN(curRecall)) {
                continue;
            }

            m += curRecall;
	}